In recent years, there has been an increased demand for larger amounts of firmware code to be made available to PC's pre-boot. Firmware is software that has been written onto Read-Only Memory (ROM) modules including but not limited to ROM, PROM, EPROM, EEPROM, and Flash memory. One reason for the increasing firmware demand is the increasing complexity of the operations required to be performed by the firmware (BIOS or Framework) (the term “Framework” is used herein to refer to Intel Corporation's (of Santa Clara, Calif.) “Platform Innovation Framework for EFI” and is discussed further below) in starting a PC and making it ready to load an operating system (OS). Another reason for the increased demand is that there is considerable interest in the industry in creating additional value-added features that run in the pre-boot environment before the operating system has loaded.
Unfortunately there are a number of issues associated with conventional methods of using firmware. The increased demand to make larger amounts of firmware code available pre-boot has not been fully met by increases in the storage available on a ROM or Flash part due to the fact that there are strong incentives in industry to keep the cost of the hardware for a PC down. Additionally, the demand for increasing firmware code also requires a secure means for communicating with other software environments, including servers on the Internet, and code that runs after an operating system has loaded. Furthermore, while there are existing solutions for securing content pre-boot, these existing solutions either rely on a dedicated partition that is made available on a local disk drive, or on a separate security chip that provides the ability to store and hide a key. There has also been significant attention devoted to the task of updating firmware stored on a Flash part in a safe manner. Current methods of updating firmware stored on a Flash part include a risk to the future operability of the computer, since a failure to complete the update successfully can cause the computer to become inoperable. Allowing such updates also imposes a small security risk in that the Flash firmware often has complete access to the internals of the computer.